Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / app / src / fdroid / kotlin / org / meshtastic / app / map / component / EditWaypointDialog.kt

Displaying Raw • Download

app/src/fdroid/kotlin/org/meshtastic/app/map/component/EditWaypointDialog.kt 520fa717a938fd84682403b41f57d9f7e1ef49ef (520fa717) Text, 16.49 KB

T8b949e/*
* Copyright (c) 2025-2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.app.map.component

Tff7b72import T7ee787android.app.DatePickerDialog
Tff7b72import T7ee787android.widget.DatePicker
Tff7b72import T7ee787android.widget.TimePicker
Tff7b72import T7ee787androidx.compose.foundation.Image
Tff7b72import T7ee787androidx.compose.foundation.background
Tff7b72import T7ee787androidx.compose.foundation.layout.Arrangement
Tff7b72import T7ee787androidx.compose.foundation.layout.Column
Tff7b72import T7ee787androidx.compose.foundation.layout.ExperimentalLayoutApi
Tff7b72import T7ee787androidx.compose.foundation.layout.FlowRow
Tff7b72import T7ee787androidx.compose.foundation.layout.Row
Tff7b72import T7ee787androidx.compose.foundation.layout.fillMaxWidth
Tff7b72import T7ee787androidx.compose.foundation.layout.padding
Tff7b72import T7ee787androidx.compose.foundation.layout.size
Tff7b72import T7ee787androidx.compose.foundation.layout.wrapContentWidth
Tff7b72import T7ee787androidx.compose.foundation.shape.CircleShape
Tff7b72import T7ee787androidx.compose.foundation.shape.RoundedCornerShape
Tff7b72import T7ee787androidx.compose.foundation.text.KeyboardActions
Tff7b72import T7ee787androidx.compose.foundation.text.KeyboardOptions
Tff7b72import T7ee787androidx.compose.material3.AlertDialog
Tff7b72import T7ee787androidx.compose.material3.Button
Tff7b72import T7ee787androidx.compose.material3.IconButton
Tff7b72import T7ee787androidx.compose.material3.MaterialTheme
Tff7b72import T7ee787androidx.compose.material3.Switch
Tff7b72import T7ee787androidx.compose.material3.Text
Tff7b72import T7ee787androidx.compose.material3.TextButton
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.runtime.getValue
Tff7b72import T7ee787androidx.compose.runtime.mutableStateOf
Tff7b72import T7ee787androidx.compose.runtime.remember
Tff7b72import T7ee787androidx.compose.runtime.setValue
Tff7b72import T7ee787androidx.compose.ui.Alignment
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.graphics.Color
Tff7b72import T7ee787androidx.compose.ui.platform.LocalContext
Tff7b72import T7ee787androidx.compose.ui.text.font.FontWeight
Tff7b72import T7ee787androidx.compose.ui.text.input.ImeAction
Tff7b72import T7ee787androidx.compose.ui.text.input.KeyboardType
Tff7b72import T7ee787androidx.compose.ui.text.style.TextAlign
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.Preview
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787androidx.compose.ui.unit.sp
Tff7b72import T7ee787kotlinx.datetime.LocalDateTime
Tff7b72import T7ee787kotlinx.datetime.Month
Tff7b72import T7ee787kotlinx.datetime.toInstant
Tff7b72import T7ee787kotlinx.datetime.toLocalDateTime
Tff7b72import T7ee787org.jetbrains.compose.resources.stringResource
Tff7b72import T7ee787org.meshtastic.core.common.util.nowSeconds
Tff7b72import T7ee787org.meshtastic.core.common.util.systemTimeZone
Tff7b72import T7ee787org.meshtastic.core.resources.Res
Tff7b72import T7ee787org.meshtastic.core.resources.cancel
Tff7b72import T7ee787org.meshtastic.core.resources.date
Tff7b72import T7ee787org.meshtastic.core.resources.delete
Tff7b72import T7ee787org.meshtastic.core.resources.description
Tff7b72import T7ee787org.meshtastic.core.resources.expires
Tff7b72import T7ee787org.meshtastic.core.resources.locked
Tff7b72import T7ee787org.meshtastic.core.resources.name
Tff7b72import T7ee787org.meshtastic.core.resources.send
Tff7b72import T7ee787org.meshtastic.core.resources.time
Tff7b72import T7ee787org.meshtastic.core.resources.waypoint_edit
Tff7b72import T7ee787org.meshtastic.core.resources.waypoint_new
Tff7b72import T7ee787org.meshtastic.core.ui.component.EditTextPreference
Tff7b72import T7ee787org.meshtastic.core.ui.emoji.EmojiPickerDialog
Tff7b72import T7ee787org.meshtastic.core.ui.icon.CalendarMonth
Tff7b72import T7ee787org.meshtastic.core.ui.icon.Lock
Tff7b72import T7ee787org.meshtastic.core.ui.icon.MeshtasticIcons
Tff7b72import T7ee787org.meshtastic.core.ui.theme.AppTheme
Tff7b72import T7ee787org.meshtastic.proto.Waypoint
Tff7b72import T7ee787kotlin.time.Duration.Companion.hours
Tff7b72import T7ee787kotlin.time.Instant

Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCyclomaticComplexMethodTa5d6ff"Tb4b4b4)
Tf0883e@OptInTb4b4b4(Te6edf3ExperimentalLayoutApiTff7b72::Te6edf3classTb4b4b4)
Tf0883e@Composable
Tff7b72fun Td2a8ffEditWaypointDialogTb4b4b4(
Te6edf3waypointTb4b4b4: Te6edf3WaypointTb4b4b4,
Te6edf3onSendClickedTb4b4b4: Tb4b4b4(Te6edf3WaypointTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3onDeleteClickedTb4b4b4: Tb4b4b4(Te6edf3WaypointTb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3onDismissRequestTb4b4b4: Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tffa657UnitTb4b4b4,
Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3waypointInput Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Te6edf3waypointTb4b4b4) Tb4b4b4}
Tff7b72val Te6edf3title Tff7b72= Tff7b72if Tb4b4b4(Te6edf3waypointTb4b4b4.Te6edf3id Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3waypoint_new Tff7b72else Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3waypoint_edit

Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tff7b72val Te6edf3emoji Tff7b72= Tff7b72if Tb4b4b4(Te6edf3waypointInputTb4b4b4.Te6edf3icon Tff7b72=Tff7b72= T79c0ff0Tb4b4b4) T79c0ff1T79c0ff2T79c0ff8T79c0ff2T79c0ff0T79c0ff5 Tff7b72else Te6edf3waypointInputTb4b4b4.Te6edf3icon
Tff7b72var Te6edf3showEmojiPickerView Tff7b72by Te6edf3remember Tb4b4b4{ Te6edf3mutableStateOfTb4b4b4(Tff7b72falseTb4b4b4) Tb4b4b4}

T8b949e// Get current context for dialogs
Tff7b72val Te6edf3context Tff7b72= Te6edf3LocalContextTb4b4b4.Te6edf3current
Tff7b72val Te6edf3tz Tff7b72= Te6edf3systemTimeZone

T8b949e// Determine locale-specific date format
Tff7b72val Te6edf3dateFormat Tff7b72= Te6edf3remember Tb4b4b4{ Te6edf3androidTb4b4b4.Te6edf3textTb4b4b4.Te6edf3formatTb4b4b4.Te6edf3DateFormatTb4b4b4.Te6edf3getDateFormatTb4b4b4(Te6edf3contextTb4b4b4) Tb4b4b4}
T8b949e// Check if 24-hour format is preferred
Tff7b72val Te6edf3is24Hour Tff7b72= Te6edf3remember Tb4b4b4{ Te6edf3androidTb4b4b4.Te6edf3textTb4b4b4.Te6edf3formatTb4b4b4.Te6edf3DateFormatTb4b4b4.Te6edf3is24HourFormatTb4b4b4(Te6edf3contextTb4b4b4) Tb4b4b4}
Tff7b72val Te6edf3timeFormat Tff7b72= Te6edf3remember Tb4b4b4{ Te6edf3androidTb4b4b4.Te6edf3textTb4b4b4.Te6edf3formatTb4b4b4.Te6edf3DateFormatTb4b4b4.Te6edf3getTimeFormatTb4b4b4(Te6edf3contextTb4b4b4) Tb4b4b4}

Tff7b72val Te6edf3currentInstant Tff7b72=
Te6edf3rememberTb4b4b4(Te6edf3waypointInputTb4b4b4.Te6edf3expireTb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3expire Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3expire
Tff7b72if Tb4b4b4(Te6edf3expire Tff7b72!Tff7b72= T79c0ff0 Tff7b72&Tff7b72& Te6edf3expire Tff7b72!Tff7b72= Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4) Tb4b4b4{
Te6edf3kotlinTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3InstantTb4b4b4.Te6edf3fromEpochSecondsTb4b4b4(Te6edf3expireTb4b4b4.Te6edf3toLongTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3kotlinTb4b4b4.Te6edf3timeTb4b4b4.Te6edf3ClockTb4b4b4.Te6edf3SystemTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4) Tff7b72+ T79c0ff8.Te6edf3hours
Tb4b4b4}
Tb4b4b4}

T8b949e// State to hold selected date and time
Tff7b72var Te6edf3selectedDate Tff7b72by
Te6edf3rememberTb4b4b4(Te6edf3currentInstantTb4b4b4) Tb4b4b4{
Te6edf3mutableStateOfTb4b4b4(
Tff7b72if Tb4b4b4(Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= T79c0ff0 Tff7b72&Tff7b72& Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4) Tb4b4b4{
Te6edf3dateFormatTb4b4b4.Te6edf3formatTb4b4b4(Te6edf3javaTb4b4b4.Te6edf3utilTb4b4b4.Te6edf3DateTb4b4b4(Te6edf3currentInstantTb4b4b4.Te6edf3toEpochMillisecondsTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Ta5d6ff"Ta5d6ff"
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tff7b72var Te6edf3selectedTime Tff7b72by
Te6edf3rememberTb4b4b4(Te6edf3currentInstantTb4b4b4) Tb4b4b4{
Te6edf3mutableStateOfTb4b4b4(
Tff7b72if Tb4b4b4(Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= T79c0ff0 Tff7b72&Tff7b72& Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4) Tb4b4b4{
Te6edf3timeFormatTb4b4b4.Te6edf3formatTb4b4b4(Te6edf3javaTb4b4b4.Te6edf3utilTb4b4b4.Te6edf3DateTb4b4b4(Te6edf3currentInstantTb4b4b4.Te6edf3toEpochMillisecondsTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Ta5d6ff"Ta5d6ff"
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}

Tff7b72if Tb4b4b4(Tff7b72!Te6edf3showEmojiPickerViewTb4b4b4) Tb4b4b4{
Te6edf3AlertDialogTb4b4b4(
Te6edf3onDismissRequest Tff7b72= Te6edf3onDismissRequestTb4b4b4,
Te6edf3shape Tff7b72= Te6edf3RoundedCornerShapeTb4b4b4(T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Tb4b4b4{
Te6edf3ColumnTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3titleTb4b4b4)Tb4b4b4,
Te6edf3style Tff7b72=
Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3titleLargeTb4b4b4.Te6edf3copyTb4b4b4(
Te6edf3fontWeight Tff7b72= Te6edf3FontWeightTb4b4b4.Te6edf3BoldTb4b4b4,
Te6edf3textAlign Tff7b72= Te6edf3TextAlignTb4b4b4.Te6edf3CenterTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3bottom Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4)
Te6edf3EditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3nameTb4b4b4,
Te6edf3maxSize Tff7b72= T79c0ff2T79c0ff9Tb4b4b4,
Te6edf3enabled Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3isError Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3keyboardOptions Tff7b72=
Te6edf3KeyboardOptionsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3keyboardType Tff7b72= Te6edf3KeyboardTypeTb4b4b4.Te6edf3TextTb4b4b4, Te6edf3imeAction Tff7b72= Te6edf3ImeActionTb4b4b4.Te6edf3DoneTb4b4b4)Tb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{ Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3name Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3trailingIcon Tff7b72= Tb4b4b4{
Te6edf3IconButtonTb4b4b4(Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3showEmojiPickerView Tff7b72= Tff7b72true Tb4b4b4}Tb4b4b4) Tb4b4b4{
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Tffa657StringTb4b4b4(Te6edf3CharacterTb4b4b4.Te6edf3toCharsTb4b4b4(Te6edf3emojiTb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3backgroundTb4b4b4(Te6edf3MaterialThemeTb4b4b4.Te6edf3colorSchemeTb4b4b4.Te6edf3backgroundTb4b4b4, Te6edf3CircleShapeTb4b4b4)
Tb4b4b4.Te6edf3paddingTb4b4b4(T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3fontSize Tff7b72= T79c0ff2T79c0ff4.Te6edf3spTb4b4b4,
Te6edf3color Tff7b72= Te6edf3ColorTb4b4b4.Te6edf3UnspecifiedTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff1fTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3EditTextPreferenceTb4b4b4(
Te6edf3title Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3descriptionTb4b4b4)Tb4b4b4,
Te6edf3value Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3descriptionTb4b4b4,
Te6edf3maxSize Tff7b72= T79c0ff9T79c0ff9Tb4b4b4,
Te6edf3enabled Tff7b72= Tff7b72trueTb4b4b4,
Te6edf3isError Tff7b72= Tff7b72falseTb4b4b4,
Te6edf3keyboardOptions Tff7b72=
Te6edf3KeyboardOptionsTb4b4b4.Te6edf3DefaultTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3keyboardType Tff7b72= Te6edf3KeyboardTypeTb4b4b4.Te6edf3TextTb4b4b4, Te6edf3imeAction Tff7b72= Te6edf3ImeActionTb4b4b4.Te6edf3DoneTb4b4b4)Tb4b4b4,
Te6edf3keyboardActions Tff7b72= Te6edf3KeyboardActionsTb4b4b4(Te6edf3onDone Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4,
Te6edf3onValueChanged Tff7b72= Tb4b4b4{ Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3description Tff7b72= Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3sizeTb4b4b4(T79c0ff4T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3ImageTb4b4b4(
Te6edf3imageVector Tff7b72= Te6edf3MeshtasticIconsTb4b4b4.Te6edf3LockTb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3lockedTb4b4b4)Tb4b4b4,
Tb4b4b4)
Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3lockedTb4b4b4)Tb4b4b4)
Te6edf3SwitchTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3wrapContentWidthTb4b4b4(Te6edf3AlignmentTb4b4b4.Te6edf3EndTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3locked_to Tff7b72!Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3locked_to Tff7b72= Tff7b72if Tb4b4b4(Tffa657itTb4b4b4) T79c0ff1 Tff7b72else T79c0ff0Tb4b4b4) Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}

Tff7b72val Te6edf3ldt Tff7b72= Te6edf3currentInstantTb4b4b4.Te6edf3toLocalDateTimeTb4b4b4(Te6edf3tzTb4b4b4)
Tff7b72val Te6edf3datePickerDialog Tff7b72=
Te6edf3DatePickerDialogTb4b4b4(
Te6edf3contextTb4b4b4,
Tb4b4b4{ Te6edf3_Tb4b4b4: Te6edf3DatePickerTb4b4b4, Te6edf3selectedYearTb4b4b4: Tffa657IntTb4b4b4, Te6edf3selectedMonthTb4b4b4: Tffa657IntTb4b4b4, Te6edf3selectedDayTb4b4b4: Tffa657Int Tff7b72-Tff7b72>
Tff7b72val Te6edf3newLdt Tff7b72=
Te6edf3LocalDateTimeTb4b4b4(
Te6edf3year Tff7b72= Te6edf3selectedYearTb4b4b4,
Te6edf3month Tff7b72= Te6edf3MonthTb4b4b4(Te6edf3selectedMonth Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3day Tff7b72= Te6edf3selectedDayTb4b4b4,
Te6edf3hour Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3hourTb4b4b4,
Te6edf3minute Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3minuteTb4b4b4,
Te6edf3second Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3secondTb4b4b4,
Te6edf3nanosecond Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3nanosecondTb4b4b4,
Tb4b4b4)
Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3expire Tff7b72= Te6edf3newLdtTb4b4b4.Te6edf3toInstantTb4b4b4(Te6edf3tzTb4b4b4)Tb4b4b4.Te6edf3epochSecondsTb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3ldtTb4b4b4.Te6edf3yearTb4b4b4,
Te6edf3ldtTb4b4b4.Te6edf3monthTb4b4b4.Te6edf3ordinalTb4b4b4,
Te6edf3ldtTb4b4b4.Te6edf3dayTb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3timePickerDialog Tff7b72=
Te6edf3androidTb4b4b4.Te6edf3appTb4b4b4.Te6edf3TimePickerDialogTb4b4b4(
Te6edf3contextTb4b4b4,
Tb4b4b4{ Te6edf3_Tb4b4b4: Te6edf3TimePickerTb4b4b4, Te6edf3selectedHourTb4b4b4: Tffa657IntTb4b4b4, Te6edf3selectedMinuteTb4b4b4: Tffa657Int Tff7b72-Tff7b72>
Tff7b72val Te6edf3newLdt Tff7b72=
Te6edf3LocalDateTimeTb4b4b4(
Te6edf3year Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3yearTb4b4b4,
Te6edf3month Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3monthTb4b4b4,
Te6edf3day Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3dayTb4b4b4,
Te6edf3hour Tff7b72= Te6edf3selectedHourTb4b4b4,
Te6edf3minute Tff7b72= Te6edf3selectedMinuteTb4b4b4,
Te6edf3second Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3secondTb4b4b4,
Te6edf3nanosecond Tff7b72= Te6edf3ldtTb4b4b4.Te6edf3nanosecondTb4b4b4,
Tb4b4b4)
Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3expire Tff7b72= Te6edf3newLdtTb4b4b4.Te6edf3toInstantTb4b4b4(Te6edf3tzTb4b4b4)Tb4b4b4.Te6edf3epochSecondsTb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3ldtTb4b4b4.Te6edf3hourTb4b4b4,
Te6edf3ldtTb4b4b4.Te6edf3minuteTb4b4b4,
Te6edf3is24HourTb4b4b4,
Tb4b4b4)

Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3sizeTb4b4b4(T79c0ff4T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3ImageTb4b4b4(
Te6edf3imageVector Tff7b72= Te6edf3MeshtasticIconsTb4b4b4.Te6edf3CalendarMonthTb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3expiresTb4b4b4)Tb4b4b4,
Tb4b4b4)
Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3expiresTb4b4b4)Tb4b4b4)
Te6edf3SwitchTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3wrapContentWidthTb4b4b4(Te6edf3AlignmentTb4b4b4.Te6edf3EndTb4b4b4)Tb4b4b4,
Te6edf3checked Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= Tffa657IntTb4b4b4.Te6edf3MAX_VALUE Tff7b72&Tff7b72& Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3onCheckedChange Tff7b72= Tb4b4b4{ Te6edf3isChecked Tff7b72-Tff7b72>
Tff7b72if Tb4b4b4(Te6edf3isCheckedTb4b4b4) Tb4b4b4{
Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3expire Tff7b72= Te6edf3currentInstantTb4b4b4.Te6edf3epochSecondsTb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3expire Tff7b72= Tffa657IntTb4b4b4.Te6edf3MAX_VALUETb4b4b4)
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}

Tff7b72if Tb4b4b4(Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= Tffa657IntTb4b4b4.Te6edf3MAX_VALUE Tff7b72&Tff7b72& Te6edf3waypointInputTb4b4b4.Te6edf3expire Tff7b72!Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3fillMaxWidthTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4, Te6edf3AlignmentTb4b4b4.Te6edf3CenterHorizontallyTb4b4b4)Tb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3ColumnTb4b4b4(Te6edf3horizontalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterHorizontallyTb4b4b4) Tb4b4b4{
Te6edf3ButtonTb4b4b4(Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3datePickerDialogTb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4) Tb4b4b4{ Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3dateTb4b4b4)Tb4b4b4) Tb4b4b4}
Te6edf3TextTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3top Tff7b72= T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Te6edf3selectedDateTb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3bodyMediumTb4b4b4,
Te6edf3textAlign Tff7b72= Te6edf3TextAlignTb4b4b4.Te6edf3CenterTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Te6edf3ColumnTb4b4b4(Te6edf3horizontalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterHorizontallyTb4b4b4) Tb4b4b4{
Te6edf3ButtonTb4b4b4(Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3timePickerDialogTb4b4b4.Te6edf3showTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4) Tb4b4b4{ Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3timeTb4b4b4)Tb4b4b4) Tb4b4b4}
Te6edf3TextTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3top Tff7b72= T79c0ff4.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3text Tff7b72= Te6edf3selectedTimeTb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3bodyMediumTb4b4b4,
Te6edf3textAlign Tff7b72= Te6edf3TextAlignTb4b4b4.Te6edf3CenterTb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3confirmButton Tff7b72= Tb4b4b4{
Te6edf3FlowRowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3paddingTb4b4b4(Te6edf3start Tff7b72= T79c0ff2T79c0ff0.Te6edf3dpTb4b4b4, Te6edf3end Tff7b72= T79c0ff2T79c0ff0.Te6edf3dpTb4b4b4, Te6edf3bottom Tff7b72= T79c0ff1T79c0ff6.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff8.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3verticalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3CenterTb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3TextButtonTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3weightTb4b4b4(T79c0ff1fTb4b4b4)Tb4b4b4, Te6edf3onClick Tff7b72= Te6edf3onDismissRequestTb4b4b4) Tb4b4b4{
Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3cancelTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3waypointTb4b4b4.Te6edf3id Tff7b72!Tff7b72= T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3ButtonTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3weightTb4b4b4(T79c0ff1fTb4b4b4)Tb4b4b4,
Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3onDeleteClickedTb4b4b4(Te6edf3waypointInputTb4b4b4) Tb4b4b4}Tb4b4b4,
Te6edf3enabled Tff7b72= Tff7b72!Tb4b4b4(Te6edf3waypointInputTb4b4b4.Te6edf3nameTb4b4b4.Te6edf3isNullOrEmptyTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3deleteTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Te6edf3ButtonTb4b4b4(Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4.Te6edf3weightTb4b4b4(T79c0ff1fTb4b4b4)Tb4b4b4, Te6edf3onClick Tff7b72= Tb4b4b4{ Te6edf3onSendClickedTb4b4b4(Te6edf3waypointInputTb4b4b4) Tb4b4b4}Tb4b4b4, Te6edf3enabled Tff7b72= Tff7b72trueTb4b4b4) Tb4b4b4{
Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3sendTb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3EmojiPickerDialogTb4b4b4(Te6edf3onDismiss Tff7b72= Tb4b4b4{ Te6edf3showEmojiPickerView Tff7b72= Tff7b72false Tb4b4b4}Tb4b4b4) Tb4b4b4{
Te6edf3showEmojiPickerView Tff7b72= Tff7b72false
Te6edf3waypointInput Tff7b72= Te6edf3waypointInputTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3icon Tff7b72= Tffa657itTb4b4b4.Te6edf3codePointAtTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Tf0883e@PreviewTb4b4b4(Te6edf3showBackground Tff7b72= Tff7b72trueTb4b4b4)
Tf0883e@Composable
Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4)
Tff7b72private Tff7b72fun Td2a8ffEditWaypointFormPreviewTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3AppTheme Tb4b4b4{
Te6edf3EditWaypointDialogTb4b4b4(
Te6edf3waypoint Tff7b72=
Te6edf3WaypointTb4b4b4(
Te6edf3id Tff7b72= T79c0ff1T79c0ff2T79c0ff3Tb4b4b4,
Te6edf3name Tff7b72= Ta5d6ff"Ta5d6ffTest 123Ta5d6ff"Tb4b4b4,
Te6edf3description Tff7b72= Ta5d6ff"Ta5d6ffThis is only a testTa5d6ff"Tb4b4b4,
Te6edf3icon Tff7b72= T79c0ff1T79c0ff2T79c0ff8T79c0ff1T79c0ff6T79c0ff9Tb4b4b4,
Te6edf3expire Tff7b72= Tb4b4b4(Te6edf3nowSecondsTb4b4b4.Te6edf3toIntTb4b4b4(Tb4b4b4) Tff7b72+ T79c0ff8 Tff7b72* T79c0ff3T79c0ff6T79c0ff0T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3onSendClicked Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3onDeleteClicked Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3onDismissRequest Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.1s